package controller.services.outro;

import java.util.List;

import model.interfaces.DAOFactory;
import model.interfaces.usuario.UsuarioDAO;
import model.vos.usuario.Usuario;

public class UsuarioService {
	private DAOFactory daoFactory;
	private UsuarioDAO usuarioDAO;
	
	public UsuarioService() {
		this.daoFactory = DAOFactory.getDAOFactory(DAOFactory.HIBERNATE);
		this.usuarioDAO = daoFactory.getUsuarioDAO();		
	}
	public Usuario pesquisarPorId(Long id){
		Usuario usuario = this.usuarioDAO.pesquisarPorId(id);
		this.daoFactory.encerrar();
		return usuario;
	}
	
	@SuppressWarnings("unchecked")
	public List<Usuario> listarTodos(){
		List<Usuario> usuarios = this.usuarioDAO.listarTodos();
		this.daoFactory.encerrar();
		return usuarios;
	}
	
	public Usuario salvar(Usuario u){
		this.daoFactory.iniciarTransacao();
		Usuario usuario = this.usuarioDAO.salvar(u);
		this.daoFactory.encerrar();
		return usuario;
	}
	
	public void excluir(Usuario u){
		this.usuarioDAO.excluir(u);
		this.daoFactory.encerrar();		
	}	
	public void alterar(Usuario u){
		this.daoFactory.iniciarTransacao();
		this.usuarioDAO.alterar(u);
		this.daoFactory.encerrar();
		
	}
	
	public String checaLogin(Usuario usuario, String login, String senha){
		
		String result = this.usuarioDAO.login(usuario, login, senha);
		return result;
	}
	public Usuario loginUser(Usuario usuario, String login, String senha){
		
		Usuario result = this.usuarioDAO.loginUser(usuario, login, senha);
		return result;
	}
}
